Para el siguiente trabajo, se realizó la muestra de distintos valores optenidos sobre visualizaciones de primates en Costa Rica de modo que estas variables puedan ser medidas y representadas mediante una tabla, un grafico de pastel y un mapa interactivo.
#Inicio de carga de datos
#Carga de librerias a utilizar
library(sf)
## Linking to GEOS 3.9.0, GDAL 3.2.1, PROJ 7.2.1
library(raster)
## Loading required package: sp
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:raster':
##
## intersect, select, union
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(spData)
library(rgdal)
## rgdal: version: 1.5-23, (SVN revision 1121)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.2.1, released 2020/12/29
## Path to GDAL shared files: C:/Users/User/Documents/R/win-library/4.0/rgdal/gdal
## GDAL binary built with GEOS: TRUE
## Loaded PROJ runtime: Rel. 7.2.1, January 1st, 2021, [PJ_VERSION: 721]
## Path to PROJ shared files: C:/Users/User/Documents/R/win-library/4.0/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:1.4-5
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading rgdal.
## Overwritten PROJ_LIB was C:/Users/User/Documents/R/win-library/4.0/rgdal/proj
library(leaflet)
library(ggplot2)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:raster':
##
## select
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(DT)
#se geneara la variable primates con separador tabulador
Primates <- read.csv("primates-cr-registros.csv",sep = "\t", dec = ",")
Primates2 <- st_read("https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
#Se obtiene la variable de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
#Se obtiene la variable de provincias
provincias <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_provincias_simp_wgs84.geojson",
quiet = TRUE
)
#Se crea una tabla para la representación de las variables
Primates %>%
select(family,
species,
stateProvince,
eventDate
) %>%
DT::datatable(
colnames = c("Familia", "Especie", "Provincia", "Fecha"),
rownames = FALSE,
options = list(
searchHighlight = TRUE,
language = list(url = "//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json"),
pageLength = 5
)
)
##Inicio generación del grafico
Una vez echo la anterior tabla, se procese al inicio de la creación del grafico de pastel de manera que los data.frame que se crearán acontinuación, sirvieron para recolectar y visualizar los datos que se utilizaron tanto en el siguiente grafico como en el mapa que será mostrado mas adelante.
monoarana <-
Primates2 %>%
filter (species == "Ateles geoffroyi")
monocariblanca <-
Primates2 %>%
filter (species == "Cebus capucinus")
monoaullador <-
Primates2 %>%
filter (species == "Alouatta palliata")
monoardilla <-
Primates2 %>%
filter (species == "Saimiri oerstedii")
#Una vez creado estos data.frames, se visualiza cuantas variables corresponden para cada visualización de especie y se procede a crear un archivo .csv con el fin de que este sea el que contenga los datos de los valores utilizados en el grafico de pastel.
Datosmonos <- read.csv("Datos monos.csv",sep = ",", na.strings = "", dec = ",")
#Creación de grafico de pastel
data <- Datosmonos[,c("Nombres", "Ejemplares")]
fig <- plot_ly(data, labels = ~Nombres, values = ~Ejemplares, type = "pie")
fig <- fig %>%
config(locale = "es") %>%
layout(title = "Cantidad de registros para cada especie de primates en Costa Rica",
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
fig
Para la creación del mapa de realizaron procesos como: ajuste sobre la escala de las diferentes capas que se trabajan, gneración y confección de un archivo raster para la altitud y generación del mapa utilizando leaflet de manera que para cada primate, así como capa base, se agraga una capa la cual se puede activar o desactivar.
#Ajustes hacia los data.frame creados
st_crs(monoarana) = 4326
st_crs(monoardilla) = 4326
st_crs(monoaullador) = 4326
st_crs(monocariblanca) = 4326
#Generación de capa raster
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
#Se recorta segun lo que se vaya a utilizar
altitud <- crop(alt, extent(-86, -82.3, 8, 11.3))
# Capa de altitud recortada para los límites exactos de Costa Rica
altitud <-
alt %>%
crop(provincias) %>%
mask(provincias)
#visualización de la capa
plot(altitud, main = "Altitud recortada para los límites aproximados de Costa Rica")
#Generación de mapa
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addCircleMarkers(data = monoaullador,
stroke = F,
radius = 4,
fillColor = '#373737',
fillOpacity = 0.5,
popup = paste(
monoaullador$stateProvince,
monoaullador$locality,
monoaullador$eventDate,
monoaullador$decimalLatitude,
monoaullador$decimalLongitude,
sep = '<br/>'
),
group = "Mono aullador (Alouatta palliata)"
) %>%
addCircleMarkers(data = monoarana,
stroke = F,
radius = 4,
fillColor = '#c29b61',
fillOpacity = 0.7,
popup = paste(
monoarana$stateProvince,
monoarana$locality,
monoarana$eventDate,
monoarana$decimalLatitude,
monoarana$decimalLongitude,
sep = '<br/>'
),
group = "Mono Araña (Ateles geoffroyi)"
) %>%
addCircleMarkers(data = monoardilla,
stroke = F,
radius = 4,
fillColor = '#f44611',
fillOpacity = 0.5,
popup = paste(
monoarana$stateProvince,
monoarana$locality,
monoarana$eventDate,
monoarana$decimalLatitude,
monoarana$decimalLongitude,
sep = '<br/>'
),
group = "Mono ardilla (Saimiri oerstedii)"
) %>%
addCircleMarkers(data = monocariblanca,
stroke = F,
radius = 4,
fillColor = 'white',
fillOpacity = 0.5,
popup = paste(
monoarana$stateProvince,
monoarana$locality,
monoarana$eventDate,
monoarana$decimalLatitude,
monoarana$decimalLongitude,
sep = '<br/>'
),
group = "Mono cariblanca (Cebus capucinus)"
) %>%
addRasterImage(
altitud,
colors = c("forestgreen","yellow","tan","brown"),
opacity = 0.7) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c("Mono aullador (Alouatta palliata)", "Mono Araña (Ateles geoffroyi)", "Mono ardilla (Saimiri oerstedii)", "Mono cariblanca (Cebus capucinus)")
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition